package main.leetcode.offer.firstround.from03to50;

/**
 * 50.第一个只出现一次的字符
 *
 * <p>在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。
 *
 * <p>示例:
 *
 * <p>s = "abaccdeff" 返回 "b"
 *
 * <p>s = "" 返回 " "
 *
 * <p>限制：
 *
 * <p>0 <= s 的长度 <= 50000
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class ex50 {
    public static void main(String[] args) {
        System.out.println(new ex50().firstUniqChar(" aD"));
    }

    public char firstUniqChar(String s) {
        int n = s.length();
        if (n == 0) return ' ';
        if (n == 1) return s.charAt(0);
        int[] count = new int[128];
        for (char c : s.toCharArray()) {
            count[c - ' ']++;
        }
        for (char c : s.toCharArray()) {
            if (count[c - ' '] == 1) return c;
        }
        return ' ';
    }
}
